﻿namespace Xmart.Expressions.DynamicPredicate;

public class DynamicPredicateTestEntity
{
    public int IntValue { get; set; }
    public long LongValue { get; set; }
    public float FloatValue { get; set; }
    public double DoubleValue { get; set; }
    public short ShortValue { get; set; }
    public ushort UShortValue { get; set; }
    public uint UIntValue { get; set; }
    public ulong ULongValue { get; set; }
    public byte ByteValue { get; set; }
    public sbyte SByteValue { get; set; }
    public decimal DecimalValue { get; set; }
    public bool BoolValue { get; set; }
    public DateTime DateTimeValue { get; set; }
    public string StringValue { get; set; } = string.Empty;
    public Guid GuidValue { get; set; }
    public TestEnum EnumValue { get; set; }
    public int? NullableValue { get; set; }
    public DateTime? NullableDateTimeValue { get; set; }
    public int[]? IntArrayValue { get; set; }
    public List<int>? IntListValue { get; set; }
    public List<DynamicPredicateTestEntityItem>? ItemListValue { get; set; }
}

public class DynamicPredicateTestEntityItem
{
    public int IntValue { get; set; }
    public bool BoolValue { get; set; }
}

public enum TestEnum
{
    Enum0 = 0,
    Enum1 = 1,
    Enum2 = 2,
    Enum3 = 3,
    Enum4 = 4,
    Enum5 = 5,
    Enum6 = 6,
    Enum7 = 7,
    Enum8 = 8,
    Enum9 = 9,
}
